<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>

        // 判断数据类型

        //  typeof 判断基本数据类型
        //     js底层在存储变量的时候，存不同数据类型的时候，会生成不同的机器码
        //     null的机器码和对象的机器码的前几位是一样的，所以在判断的时候，会把null错误的当成object
        //     typeof无法检测  null

        //  instanceof  主要是判断引用数据类型


        // const arr = [];
        // console.log(arr instanceof Array);
        // console.log(arr instanceof Object);


        function myInstanceof(l, r) {
            // if (l.__proto__ === r.prototype) {
            //     return true
            // }


            // if (l.__proto__.__proto__ === r.prototype) {
            //     return true
            // }

            // // ...

            // if (l.__proto__.__proto__.__proto__... === null) {
            //     return false
            // }

            // 不知道重复多少次
            // while (true) {
            //     if (l === null) {
            //         return false;
            //     }
            //     if (l.__proto__ === r.prototype) {
            //         return true;
            //     }
            //     l = l.__proto__;
            // }


        }



        console.log(myInstanceof([], Object))


        // [] === null X
        // [].__proto__   Function.prototype   X


        // [].__proto__   === null
        // [].__proto__   Function.prototype   X

        // [].__proto__.__proto__  === null


    </script>

</body>

</html>